1 module mruby.object;
2 
3 import mruby;
4 import mruby.mrb_class;
5 import mruby.variable;
6 
7 extern (C):
8 
9 struct RBasic
10 {
11 	enum mrb_vtype
12 	{
13 		MRB_TT_FALSE = 0,
14 		MRB_TT_FREE = 1,
15 		MRB_TT_TRUE = 2,
16 		MRB_TT_FIXNUM = 3,
17 		MRB_TT_SYMBOL = 4,
18 		MRB_TT_UNDEF = 5,
19 		MRB_TT_FLOAT = 6,
20 		MRB_TT_CPTR = 7,
21 		MRB_TT_OBJECT = 8,
22 		MRB_TT_CLASS = 9,
23 		MRB_TT_MODULE = 10,
24 		MRB_TT_ICLASS = 11,
25 		MRB_TT_SCLASS = 12,
26 		MRB_TT_PROC = 13,
27 		MRB_TT_ARRAY = 14,
28 		MRB_TT_HASH = 15,
29 		MRB_TT_STRING = 16,
30 		MRB_TT_RANGE = 17,
31 		MRB_TT_EXCEPTION = 18,
32 		MRB_TT_FILE = 19,
33 		MRB_TT_ENV = 20,
34 		MRB_TT_DATA = 21,
35 		MRB_TT_FIBER = 22,
36 		MRB_TT_MAXDEFINE = 23
37 	}
38 	mrb_vtype tt;
39 	uint color;
40 	uint flags;
41 	RClass* c;
42 	RBasic* gcnext;
43 }
44 
45 struct RObject
46 {
47 	enum mrb_vtype
48 	{
49 		MRB_TT_FALSE = 0,
50 		MRB_TT_FREE = 1,
51 		MRB_TT_TRUE = 2,
52 		MRB_TT_FIXNUM = 3,
53 		MRB_TT_SYMBOL = 4,
54 		MRB_TT_UNDEF = 5,
55 		MRB_TT_FLOAT = 6,
56 		MRB_TT_CPTR = 7,
57 		MRB_TT_OBJECT = 8,
58 		MRB_TT_CLASS = 9,
59 		MRB_TT_MODULE = 10,
60 		MRB_TT_ICLASS = 11,
61 		MRB_TT_SCLASS = 12,
62 		MRB_TT_PROC = 13,
63 		MRB_TT_ARRAY = 14,
64 		MRB_TT_HASH = 15,
65 		MRB_TT_STRING = 16,
66 		MRB_TT_RANGE = 17,
67 		MRB_TT_EXCEPTION = 18,
68 		MRB_TT_FILE = 19,
69 		MRB_TT_ENV = 20,
70 		MRB_TT_DATA = 21,
71 		MRB_TT_FIBER = 22,
72 		MRB_TT_MAXDEFINE = 23
73 	}
74 	mrb_vtype tt;
75 	uint color;
76 	uint flags;
77 	RClass* c;
78 	RBasic* gcnext;
79 	iv_tbl* iv;
80 }
81 
82 struct RFiber
83 {
84 	enum mrb_vtype
85 	{
86 		MRB_TT_FALSE = 0,
87 		MRB_TT_FREE = 1,
88 		MRB_TT_TRUE = 2,
89 		MRB_TT_FIXNUM = 3,
90 		MRB_TT_SYMBOL = 4,
91 		MRB_TT_UNDEF = 5,
92 		MRB_TT_FLOAT = 6,
93 		MRB_TT_CPTR = 7,
94 		MRB_TT_OBJECT = 8,
95 		MRB_TT_CLASS = 9,
96 		MRB_TT_MODULE = 10,
97 		MRB_TT_ICLASS = 11,
98 		MRB_TT_SCLASS = 12,
99 		MRB_TT_PROC = 13,
100 		MRB_TT_ARRAY = 14,
101 		MRB_TT_HASH = 15,
102 		MRB_TT_STRING = 16,
103 		MRB_TT_RANGE = 17,
104 		MRB_TT_EXCEPTION = 18,
105 		MRB_TT_FILE = 19,
106 		MRB_TT_ENV = 20,
107 		MRB_TT_DATA = 21,
108 		MRB_TT_FIBER = 22,
109 		MRB_TT_MAXDEFINE = 23
110 	}
111 	mrb_vtype tt;
112 	uint color;
113 	uint flags;
114 	RClass* c;
115 	RBasic* gcnext;
116 	mrb_context* cxt;
117 }